package jobascjp;

class Dog {
    public void bark() { System.out.println("woof"); }
}
class Hound extends Dog {
    public void sniff(){ System.out.println("sniff"); }
    public void bark(){ System.out.println("howl"); }
}
public class DogShow {
    public static void main(String[] args) { new DogShow().go(); }
    void go(){
        new Hound().bark();
        ((Dog) new Hound()).bark();
        //((Dog) new Hound()).sniff();
    }
    // What is the result?
    // howl howl sniff
    // howl woof sniff
    // howl howl followed by an exception
    // howl woof followed by an exception
    // compilation fails due to an error at line 14
    // compilation fails due to an error at line 15
    // Anmerkung:
    // Es geht um Vererbung und Casting. In Zeile 15 wird Hound zu Dog gecastet,
    // dann gibt es aber das Problem, dass Dog keine sniff-Methode hat, bark()
    // haben beide, das ist kein Problem.Antwort CompFail at l15 ist also 
    // richtig, nach dem Auskommentieren von l15 wird bark auf Dog-Typ gerufen,
    // also woof ausgegeben.
    // TODO Oha es wird howl, howl ausgegeben warum.
}

